home *** CD-ROM | disk | FTP | other *** search
/ Aminet 40 / Aminet 40 (2000)(Schatztruhe)[!][Dec 2000].iso / Aminet / util / cdity / MRQ.lha / MRQ / Source / config.h < prev    next >
C/C++ Source or Header  |  2000-10-16  |  3KB  |  106 lines

  1. /* config.h
  2. ** C header for MRQ's config parser, also defines a lot of data structures
  3. ** used throughout the program
  4. **
  5. ** ©1997-1999 by Matthias.Bethke <Matthias.Bethke@gmx.net>
  6. ** You are free to modify this source or use parts of it in your
  7. ** own programs as long as they are distributed as freeware.
  8. */
  9.  
  10. /* $Id: config.h 1.1 2000/01/25 17:20:40 msbethke Exp msbethke $
  11. **
  12. ** $Log: config.h $
  13. ** Revision 1.1  2000/01/25 17:20:40  msbethke
  14. ** Initial revision
  15. **
  16. **
  17. */
  18.  
  19.  
  20. /* MRQString flags */
  21. #define MSF_PATTERN        (1<<0)
  22. #define MSF_NOCASE        (1<<1)
  23. #define MSF_SUBSTRING    (1<<2)
  24. #define MSF_FORMATTED    (1<<3)
  25.  
  26. /* MRQImage flags */
  27. #define MIF_FILENAME        (1<<0)
  28. #define MIF_STDIMAGE        (1<<1)
  29. #define MIF_ANIMATION    (1<<2)
  30. #define MIF_TRANSPARENT    (1<<3)
  31.  
  32. struct MRQImageButton
  33. {
  34.     APTR mib_Picture;                    // guigfx picture object
  35.     STRPTR mib_Text;                    // text to match for this button
  36. };
  37.  
  38. struct MRQImage
  39. {
  40.     APTR    mi_Object;                // filename pointer, guigfx object or image pointer
  41.     ULONG mi_Flags;                // see above (MIF_*)
  42. };
  43.  
  44. struct MRQString
  45. {
  46.     struct MinNode ms_Node;    // to link into string list
  47.     STRPTR ms_String;            // the actual string to match
  48.     ULONG ms_Flags;            // see above (MSF_*)
  49. };
  50.  
  51. struct MRQEventClass
  52. {
  53.     struct MinNode mec_Node;            // to link into eventclass list
  54.     struct MinList mec_StringList;    // list of strings for this class
  55.     struct MRQImage mec_Image;            // image to show for this class
  56.     STRPTR mec_RxPortName;                // ARexx port name
  57.     STRPTR mec_RxCmdString;                // command to dispatch
  58. };
  59.  
  60. struct MRQConfig
  61. {
  62.     APTR mc_MemPool;                                    // MemPool to use for all allocations
  63.                                                             // during config parse (see AVP.a!)
  64.     struct MinList mc_ClassList;                    // list of all event classes
  65.     struct MRQImageButton mc_IButton_Yes;        // Imagebuttons
  66.     struct MRQImageButton mc_IButton_No;        // if any
  67.     struct MRQImageButton mc_IButton_Cancel;    // chosen
  68.     struct MRQEventClass mc_DefClass;            // the default event class if no other matches
  69. };
  70.  
  71. struct Arguments        // for ReadArgs() to parse the configfile
  72. {                            // see template below
  73.     LONG NewClass;
  74.     STRPTR *Locale;
  75.     STRPTR String;
  76.     LONG Pattern;
  77.     LONG NoCase;
  78.     LONG Substring;
  79.     LONG Formatted;
  80.     STRPTR Image;
  81.      LONG Preload;
  82.      LONG Animation;
  83.     LONG Transparent;
  84.     STRPTR RxPort;
  85.     STRPTR RxCmd;
  86. };
  87.  
  88. #define CONFIG_RDAPATTERN "\
  89. NEWCLASS/S,\
  90. LO=LOCALE/K/M,\
  91. ST=STRING/K,\
  92. PA=PATTERN/S,\
  93. NC=CMPNOCASE/S,\
  94. SU=SUBSTRING/S,\
  95. FO=FORMATTED/S,\
  96. IM=IMAGE/K,\
  97. PL=PRELOAD/S,\
  98. AN=ANIMATION/S\
  99. TR=TRANSPARENT/S,\
  100. RP=REXXPORT/K,\
  101. RC=REXXCMD/K"
  102.  
  103. /* protos */
  104. struct MRQConfig *ReadMRQConfig(STRPTR);
  105. void FreeMRQConfig(struct MRQConfig*);
  106.